package com.ikun.admin.modules.sys.iservice;

import com.ikun.admin.modules.sys.vo.*;
import com.ikun.common.result.Result;
import com.ikun.common.search.PageData;
import com.ikun.common.search.PageResult;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @ClassName IAclService
 * @Description:
 * @CreateDate: 2024/5/31 23:55
 */
public interface IAclService {
    Result<PermMenuVo> selectMenuPerm();

    List<RoleCommonVo> selectRoleByUser(Long id);

    List<String> selectMenuByUser(Long id);

    Result<PageResult<UserListResultVo>> userList(PageData<UserListParamVo> pageData);

    Result<UserDetailVo> userDetail(Long id);

    Result<List<RoleDictVo>> roleDict();

    Result<PageResult<RoleDictVo>> roleList(PageData<RoleListParamVo> pageData);

    Result<String> addOrUpdateUser(UserAddOrUpdateVo userAddOrUpdateVo);

    Result<String> deleteUser(Long id);

    Result<RoleDictVo> roelDetail(Long id);

    Result<String> addOrUpdateRole(RoleDictVo roleDictVo);

    Result<String> deleteRole(Long id);

    Result<List<PermTreeNodeVo>> permTree();

    Result<List<Long>> selectMenuByRoleId(Long id);

    Result<String> addOrUpdateRoleMenu(RoleMenuAddOrUpdateVo roleMenuAddOrUpdateVo);

    Result<List<UserDictVo>> selectUserDict();

    void exportUser(HttpServletResponse response, PageData<UserListParamVo> pageData);

    Result<String> importUser(MultipartFile file);
}
